/** 
 *  @file       key.c
 *  @brief      独立按键驱动程序    使用P1连接八个独立按键
 *  @author     Z B T   
 *  @version    V0.1
 *  @date       2015-10
 */
 
#include "key.h"
#include "delay.h"
#include "config.h"
    
#define KEY_PORT    P1

/**
 *  独立按键扫描程序
 *  @param None
 *  @return 按键键值
 */
 enum KEY_VALUE key_scan(void)
 {
     unsigned char i = 0;
     unsigned char key_value = 0;
     
     if (KEY_PORT != NO_KEY)                              /**< 检测按键按下 */
     {  
         delay_ms(20);
         if (KEY_PORT != NO_KEY)                          /**< 确认按键按下 */
         {
             key_value = KEY_PORT;
             while ((i < 50) && (KEY_PORT != NO_KEY))     /**< 检测按键释放 */
             {
                 delay_ms(10);
                 i++;
             }
         }
     }
     return key_value;
 }